'use strict';
class MUtil{
	constructor(){
		this.initStorage();
	}
	// 初始化缓存
	initStorage(){
		this.saveData('count-new', 1);
		this.saveData('count-done', 1);
	}
	// 清理缓存
	clearStorage(){
		window.localStorage.clear();
	}
	// 转为JSON
	createJson(data){
		let count  = parseInt(this.getData('count-new'));
		let myDate = new Date(),
			result = {
				'num'   : count,
				'data'  : data,
				'ctime' : myDate.toLocaleString(),
				'dtime' : ''
			};
		return	result;
	}
	// 转为数据列表
	createList(){
		let list = [];
		let	countNew    = parseInt(this.getData('count-new')),
			countDone   = this.getData('count-done');
		// 从loackStorage取出未完成的计划
		for(let i = 1; i < countNew; i++){
			let temp = this.getData('count-new' + i);//字符串
			if(temp !== 'delete'){
				list.push(JSON.parse(temp));
			}
		}
		console.log(list);
		return list;
	}
	// H5 localStorage,存储
	saveData(namespace, data){
		let dataType = typeof data;
		// JSON类型
		if(dataType === 'object'){
			window.localStorage.setItem(namespace, JSON.stringify(data));
		}
		// 基础类型
		else if(['number', 'string', 'boolean'].indexOf(dataType) >= 0){
			window.localStorage.setItem(namespace, data);
		}
		// 其他不支持的类型
		else{
			alert('该类型不能用于本地存储')
		}
	}
	// 取数据
	getData(namespace){
		let data = window.localStorage.getItem(namespace);
		if(data){
			return JSON.parse(data);
		}
		else{
			return '';
		}
	}
	// 删除数据
	deleteData(namespace){
		window.localStorage.removeItem(namespace);
	}
}
export default MUtil;